import type { IObject } from '@/types/customs';

/**
 * 合并两个对象，如果data1中不存在某个属性，则添加该属性
 *
 * 在常规对象中这个功能等效于 {...data1, ...data2}
 * 但是这里的data1如果是响应式对象，则不会触发响应式更新，所以需要手动更新
 *
 * 注意：在hooks中和refs搭配使用*
 */
export function mergeData(data1: IObject, data2: IObject) {
  Object.keys(data2).forEach((key) => {
    if (!data1[key] && data2[key]) {
      data1[key] = data2[key];
    }
  });
  return data1;
}
